package com.itheima.day16_网络编程.Test01;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.UUID;

public class Server {
    /*
        【编号2105】请编写程序，实现使用TCP协议将文件从客户端上传到服务器端。
        要求实现，客户端通过键盘录入一个jpg图片文件的路径，将该文件发送给服务器端；
        服务器端获取到文件后，保存到当前模块目录下，并给出“上传成功”的反馈。
        其中，上传的文件仅允许jpg格式的图片，保存到服务器端的文件，为防止重名覆盖，可使用32位UUID作为文件名。
        32位UUID的获取方式如下：
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        程序运行，客户端控制台显示的信息如下：
        请输入一个jpg图片文件的路径：
        d:\itheima\mn.jpg
        服务器端反馈：
        上传成功
    */
    public static void main(String[] args) throws IOException {
        ServerSocket s = new ServerSocket(10000);
        Socket a = s.accept();
        InputStream is = a.getInputStream();
        String name = UUID.randomUUID().toString().replaceAll("-", "");
        FileOutputStream fos = new FileOutputStream("homework\\"+name+".jpg");
        int i;
        byte[] bytes = new byte[1024];
        while((i=is.read(bytes))!=-1){
            fos.write(bytes,0,i);
        }
        OutputStream os = a.getOutputStream();
        os.write("上传成功".getBytes());
        fos.close();
        a.close();
        s.close();
    }
}
